⑱ 什么是系统提示词(System Prompt)#
建议先读 ⑦ 什么是 Prompt、① 什么是 Agent 和 ⑯ 什么是 Harness。那几篇讲了"怎么问决定怎么答""AI 助理会自己干活""是外面的骨架在替大脑跑腿"。这一篇要回答一个你天天在用、却可能从没想过的问题:同一个大模型,为什么用在 Khy-OS 里它像个严谨的程序员,用在别的地方却像个话痨或诗人?是谁在它开口之前,就悄悄给它定好了"你是谁、你该守什么规矩"? 答案,就是本篇的主角——系统提示词(System Prompt)。
一、一句话定义#
系统提示词 = 在你每一句话之前,就已经"焊死"在对话最前面、由开发者预先设定、规定 AI「你是谁、守什么规矩、能用哪些工具、用什么口吻」的那段常驻指令。
如果你只想记住一句话,就记这句:
你每次打的字(用户提示词)是"这一趟的差遣";系统提示词是"上岗前就签好、贴在墙上、每一趟都生效"的那份岗位守则。你看不见它,但 AI 每次开口前都先读了它一遍。
这一句话是整篇文档的骨架。后面所有的比喻、图、误区,都是在反复讲透这一句话。
一句话摆清它和 ⑦ Prompt 的关系:Prompt(提示词)是个大概念,指"发给模型的所有文字";而系统提示词,是这段文字里最特殊的一截——它由开发者设定、常驻不变、优先级最高,专门用来"立规矩、定人设"。
二、为什么需要系统提示词?#
⑦ Prompt 那一篇讲过:你怎么问,决定它怎么答。但那里的"问",是你每一次临时打的字。这带来一个问题——
有些规矩,是"每一次对话都必须遵守"的,你总不能每次都手打一遍吧?
想象你请了一个新助理,如果没有任何"入职守则",你每次交代任务都得从头说:
- "记住,你是我的编程助理,不是诗人,别给我写诗。"
- "只准用中文回答。"
- "删文件之前必须先问我。"
- "不许瞎编,不知道就说不知道。"
每一次、每一句都重复一遍——累死人,还容易漏。系统提示词,就是把这些"每次都要守的规矩"一次性写好、焊在最前面,让它在每一轮对话里自动生效。 你只管交代具体任务,那些底层规矩,系统提示词替你守着。
flowchart LR
subgraph 没有系统提示词["😩 假如没有系统提示词"]
U1["你:帮我改代码,<br/>记住只用中文、别删文件、<br/>不知道就说不知道……"] --> M1["🧠 模型"]
U2["你:再改一处,<br/>记住只用中文、别删文件、<br/>不知道就说不知道……"] --> M1
NOTE1["每次都得重复叮嘱,<br/>累且易漏 ❌"]
end
subgraph 有系统提示词["😌 有了系统提示词"]
SYS["📜 系统提示词(一次写好,常驻):<br/>你是中文编程助理 / 别删文件 / 不许瞎编"] --> M2["🧠 模型"]
U3["你:帮我改代码"] --> M2
U4["你:再改一处"] --> M2
NOTE2["规矩焊在前面,<br/>你只管交代任务 ✅"]
end
所以系统提示词的价值就一句话:把"每次都要守的规矩"从"你每次手打"里解放出来,变成"开发者写一次、永远生效"的常驻守则。 这就是为什么每一个正经的 AI 产品(Khy-OS、Claude Code、Cursor……)背后,都藏着一份精心打磨的系统提示词。
三、核心比喻:上岗前贴在墙上的"岗位守则"#
"系统提示词"这个词听着技术,用两个生活里的画面就能焊死它。
比喻一:新员工的《入职手册 + 岗位说明书》#
你入职一家公司,第一天 HR 会给你一份手册:你的岗位是什么、公司有哪些红线(不能泄密、不能私自动用公款)、汇报给谁、用什么语气对客户说话。 这份手册你上岗前就得读、天天都得守——它不是某个具体任务,而是贴在你身份底层、每件事都适用的框架。
系统提示词 = 这份《入职手册》;你每天接到的具体活儿 = 用户提示词。 手册定"你是谁、守什么规矩",具体活儿定"今天干什么"。
比喻二:演员的"角色设定 + 剧本总纲"#
一个演员上台前,导演先给他一份角色设定:"你演的是一位冷静、寡言、正义感极强的老警探,说话简短,从不爆粗口。" 这是总纲——之后无论台上发生什么临场对话,他都得保持这个人设。观众看到的是一句句台词(用户提示词),但每一句背后,都被那份"角色设定"约束着。
系统提示词 = 角色设定与总纲(定人设、定底线);每一句临场台词 = 用户提示词。 换一份角色设定,同一个演员就能从老警探变成小丑——同一个大模型,换一份系统提示词,就能从严谨程序员变成段子手。
flowchart TB ACTOR["🧠 同一个大模型<br/>(同一个演员)"] S1["📜 系统提示词 A:<br/>'你是严谨的中文编程助理,<br/>诚实、不删文件'"] --> R1["🤖 表现得像:<br/>一丝不苟的工程师"] S2["📜 系统提示词 B:<br/>'你是毒舌吐槽役,<br/>句句带梗'"] --> R2["😜 表现得像:<br/>网络段子手"] ACTOR --> S1 ACTOR --> S2
两个比喻的共同内核:系统提示词不是"某一次的任务",而是"贴在 AI 身份最底层、每一次都生效的框架和底线"。 记住这一点,系统提示词是什么就再也不会忘。
四、系统提示词 vs 用户提示词:最关键的一张对照#
新手最容易把这两个搞混。它们都是"发给模型的字"(都属于广义的 Prompt),但地位天差地别。请把这张表刻进脑子:
| 对比项 | 🧑💻 用户提示词(User Prompt) | 📜 系统提示词(System Prompt) |
|---|---|---|
| 谁写的 | 你(用户),每次现打 | 开发者,事先写好 |
| 多久变一次 | 每一轮都不同 | 常驻不变(整场对话都一样) |
| 管什么 | "这一趟具体干什么" | "你是谁、守什么规矩、什么口吻" |
| 你看得见吗 | 看得见,就是你打的字 | 通常看不见,藏在幕后 |
| 优先级 | 服从系统提示词的框架 | 更高——冲突时以它为准 |
| 类比 | 今天派给你的活儿 | 入职手册 / 角色设定 |
一句话记住它俩的关系:
flowchart LR SYS["📜 系统提示词<br/>(框架 · 底线 · 常驻)"] --> BOX USR["🧑💻 用户提示词<br/>(这趟的具体差遣)"] --> BOX BOX["📨 拼在一起,一并发给模型"] --> M["🧠 模型:<br/>先读框架,再读差遣,<br/>在框架内完成差遣"]
系统提示词划出"操场的边界线",用户提示词是"你在场内怎么踢球"。 你能在场内自由发挥,但踢出边界线(违反系统提示词的红线)时,一个设计良好的 AI 会拒绝——因为系统提示词的优先级更高。
五、系统提示词里通常写些什么?#
一份成熟的系统提示词(比如 Khy-OS 的),通常包含这么几大块。你不用会写,但看一眼它管的范围,就明白它多重要:
| 板块 | 写什么 | 举个例子 |
|---|---|---|
| ① 身份/角色 | 你是谁、干哪一行 | "你是一位资深软件工程师助理" |
| ② 行为规矩 | 该怎么做事、什么风格 | "回答简洁、直接、给可执行方案" |
| ③ 能用的工具 | 手上有哪些工具、怎么用 | "你可以读文件、跑命令、搜索代码" |
| ④ 安全红线 | 绝对不能碰的底线 | "删文件/推送代码前必须先征得用户同意" |
| ⑤ 语言/格式 | 用什么语言、什么排版 | "只用中文回答;代码放进代码块" |
| ⑥ 环境信息 | 当前处境的背景 | "当前项目目录、操作系统、今天日期" |
flowchart TB SYS["📜 一份系统提示词"] SYS --> A["① 身份:你是谁"] SYS --> B["② 规矩:怎么做事"] SYS --> C["③ 工具:能用什么"] SYS --> D["④ 红线:不能碰什么"] SYS --> E["⑤ 语言格式:怎么表达"] SYS --> F["⑥ 环境:当前背景"]
看懂这张表,你就明白:系统提示词几乎"塑造"了这个 AI 的一切外在表现。 它是不是靠谱、安不安全、说话合不合你胃口——很大一部分,都是这份幕后守则决定的。
六、感觉一下:那段"你没看到的字"#
⚠️ 郑重提醒:下面这段东西你完全不用会写。 放它在这,只是让你亲眼看一眼——你以为只发了自己的问题,模型实际收到的却是"系统提示词 + 你的问题"拼在一起的一大段。
假设你只在 Khy-OS 里打了一句:
帮我删掉 build 文件夹
而模型实际收到的,是这样一段(前面那一大截是你从没看到的系统提示词):
【系统提示词 · 你看不到,但每次都在最前面】
你是一位资深软件工程师助理。
- 只用中文回答,语气简洁专业。
- 你可以读文件、改文件、跑命令。
- 【安全红线】删除文件/文件夹、推送代码等危险操作,
必须先停下来向用户确认,得到明确同意才执行。
- 不确定的事,如实说不确定,绝不编造。
【用户提示词 · 你刚打的那句】
帮我删掉 build 文件夹
看到了吗?正因为前面那段系统提示词写了"删除前必须先确认",模型才不会闷头就删,而是回你一句"确定要删除 build 文件夹吗?"。
你打的只有一句话,但决定它"怎么回你这句话"的,一大半是你没看到的那段系统提示词。 这就是它的威力——沉默地站在最前面,塑造着每一次回答。
把这段"你只打了一句、模型却收到一大段"演成一幕小短剧——重点看那段你从没看到的系统提示词,是怎么在幕后拦住"闷头就删"的:
七、常见误区(新手最容易踩的坑)#
这一节请务必逐条读完。这些误解会让你对"系统提示词"的理解跑偏。
误区 1:以为系统提示词就是"我打的那句话"#
- ❌ 错误理解:我发给 AI 的问题,就是系统提示词。
- ✅ 正确理解:你打的那句是"用户提示词"。 系统提示词是开发者预先写好、藏在你那句话前面的常驻指令,通常你根本看不到。两者拼在一起才是模型收到的完整输入。
误区 2:以为系统提示词会"修改模型本身"#
- ❌ 错误理解:写系统提示词,是不是在给模型"重新编程"、改它的大脑?
- ✅ 正确理解:一个字都没改模型。 模型(那颗训练好的"大脑")纹丝不动,系统提示词只是每次对话时垫在最前面的一段文字,靠"文字引导"让它表现出某种人设。换个系统提示词,同一个模型立刻换个样——因为变的是"叮嘱的话",不是大脑。
误区 3:以为系统提示词是"绝对铁律,永远不会被突破"#
- ❌ 错误理解:只要在系统提示词里写了"不许干坏事",模型就 100% 做不到。
- ✅ 正确理解:系统提示词是"强引导",不是"物理锁"。 它优先级最高、绝大多数时候有效,但本质仍是"文字劝导"。所以真正的安全,还得靠 ⑯ Harness 那道"代码级的闸门"(危险动作强制弹窗确认)来兜底——提示词管"劝",harness 管"拦",双保险才靠谱。
误区 4:以为系统提示词越长越好#
- ❌ 错误理解:把所有能想到的规矩全塞进去,写得越详细越好。
- ✅ 正确理解:系统提示词也占 Token、也占记忆窗口。 它太长会挤占宝贵的上下文空间,还可能让模型"抓不住重点"。好的系统提示词是精炼、有条理、抓大放小——把最关键的身份、红线、风格讲透,而不是堆成一本厚字典。
误区 5:以为系统提示词和"知识/记忆"是一回事#
- ❌ 错误理解:想让 AI"记住"我项目的所有细节,全写进系统提示词就行了。
- ✅ 正确理解:系统提示词管的是"怎么做事的框架",不是"海量知识库"。 塞大量项目细节进去,既占空间又低效。"临时要用的大量资料"该走 ⑪ RAG(用时再查);"做事的规矩和人设"才放系统提示词。别拿守则当仓库。
错。用户打的是"用户提示词";系统提示词是幕后那段常驻守则,两者地位不同、优先级不同。
对。它靠文字引导塑造人设,改守则不改模型,就像给同一个演员换角色设定。
对。提示词负责"劝",harness 负责代码级地"拦",双保险才安全。
错。系统提示词管"做事框架"不是知识仓库;海量资料该走 RAG 用时再查,塞进去既占空间又低效。
八、动手小实验 / 思想实验#
理论看再多,不如在脑子里走一遍。下面的思想实验不用写代码,只用想。
实验:给同一个"演员"换两份角色设定#
想象你手上有一个万能演员(大模型),你要拍两部戏。你什么都不改,只递给他两份不同的"角色设定"(系统提示词),然后对他说同一句台词(用户提示词):"今天天气不错。"
flowchart TB LINE["🧑💻 同一句用户提示词:<br/>'今天天气不错'"] SET1["📜 角色设定 A:<br/>'你是惜字如金的老船长'"] --> OUT1["🧭 '嗯。'"] SET2["📜 角色设定 B:<br/>'你是热情洋溢的导游'"] --> OUT2["🎉 '是呀!这么好的天,<br/>正适合出门走走,我给您推荐几个好去处~'"] LINE --> SET1 LINE --> SET2
同样一句"今天天气不错",配"老船长"设定,回你一个字"嗯";配"热情导游"设定,回你热情洋溢一大段。台词(用户提示词)没变,回答却天差地别——变的,是那份你递过去的角色设定(系统提示词)。
走完这一遍,请你回答自己三个问题:
- 那句台词(用户提示词)变了吗?——没有,一模一样。
- 是什么让回答天差地别?——是两份不同的系统提示词(角色设定)。
- 演员(模型)本身被改动过吗?——没有,同一个演员,只是被"叮嘱"成了不同的人。
关键体会:你刚刚亲眼看到,系统提示词是如何"隔空塑造"AI 的表现的。下次你觉得某个 AI"很懂你"或"很死板",别只夸模型或怪模型——它的性格,一大半是那份你看不见的系统提示词给的。
九、和其它概念的关系#
系统提示词不是孤立的词,它站在好几个概念的交叉口上。
flowchart TB SYS["📜 系统提示词<br/>(常驻守则 / 人设 / 红线)"] PROMPT["⑦ Prompt<br/>(发给模型的所有字)"] CTX["⑧ Context/Token<br/>(它也占记忆窗口)"] HARNESS["⑯ Harness<br/>(它由 harness 组装进对话)"] AGENT["① Agent<br/>(它定义了这个助理的'人设')"] PROMPT -->|"系统提示词是它最特殊的一截"| SYS SYS -->|"占用一部分"| CTX HARNESS -->|"每轮把它拼在最前面"| SYS SYS -->|"塑造"| AGENT
| 概念 | 一句话关系 | 类比 |
|---|---|---|
| ⑦ Prompt | 系统提示词是 Prompt 里最特殊、优先级最高的一截 | 岗位守则是"公司下发文件"里最高级别那一份 |
| ⑧ Context 与 Token | 系统提示词也占记忆窗口,所以要精炼 | 守则太厚,也会占掉你桌上的空间 |
| ⑯ Harness | 每一轮,是 harness 把系统提示词拼在最前面发给模型 | 亲兵每次都先把"军规"念给军师听 |
| ① Agent | 系统提示词定义了这个 Agent 的人设和底线 | 给这位助理写好"你是谁、守什么规矩" |
| ⑲ ReAct 等模式 | 系统提示词里常指定 AI 用哪种思考模式(比如"先想再做") | 守则里写明"做事前先在草稿纸上想清楚" |
一句话串起来:系统提示词是 harness 每轮垫在最前面、占着一部分记忆窗口、给这个 Agent 定下人设与红线、还常常规定它该用哪种思考模式的——那份最高优先级的常驻守则。
十、和 Khy-OS 的关系#
这一节和你手上的项目关系很紧:
你正在读的这套规矩,Khy-OS 里就有一份活生生的系统提示词。
Khy-OS 作为一个 harness,它每次向模型发起请求时,都会在你的话前面,拼上一大段精心设计的系统提示词。你在这个项目里见过的很多"规矩",本质上就是系统提示词层面的约束:
- 身份:"你是资深软件工程师助理";
- 语言规矩:什么场景用什么语言回答;
- 安全红线:不许 AI 自动提交/推送代码、危险命令要先确认、真密钥绝不落盘——这些"红线",一部分正是靠系统提示词反复叮嘱模型来守住的;
- 做事方法论:先想再写、目标驱动、外科手术式改动……这些也可以写进系统提示词,成为它每次干活的"心法"。
所以,当你日后翻看 Khy-OS 里那些"章程""守则""预设包"时,你就会认出来:哦,这些就是喂给模型的系统提示词的一部分——它们不是给人看的说明书,而是每一轮都真真切切塞给模型、约束着它一举一动的"幕后守则"。
💡 换个角度说:学会"系统提示词"这个概念,你就掌握了"给 AI 立规矩"的方向盘。 很多人用 AI 只会临时打问题(用户提示词),而你从第一天就知道:想让 AI 稳定、可靠、安全地按你的心意办事,真正的功夫在那份幕后常驻的系统提示词上。这是从"会用 AI"迈向"会调教 AI"的关键一步。
⚠️ 诚实说一句边界:系统提示词具体写什么、怎么组织、怎么和 harness 配合,属于设计与实现层面,各家做法不同。Khy-OS 的具体做法你可以在
docs/03_DESIGN_设计与项目章程里深入了解。本文只讲"系统提示词是什么、为什么需要它"这一层概念地图。
十一、小结 + 下一步#
- 系统提示词 = 开发者预先写好、焊在对话最前面、常驻不变、优先级最高的那段指令——规定 AI 的身份、规矩、工具、语气和红线。
- 为什么需要它:有些规矩"每次都要守",不能靠你每回手打;系统提示词把它们一次写好、永远生效,你只管交代具体任务。
- 核心比喻:新员工的入职手册/岗位说明书、演员的角色设定/剧本总纲——定人设、定底线,换一份就换个"AI 性格"。
- 和用户提示词的区别:用户提示词是"这趟的差遣"(你现打、每次变);系统提示词是"常驻守则"(开发者写、优先级更高、通常看不见)。
- 它通常写:身份、行为规矩、可用工具、安全红线、语言格式、环境信息。
- 五大误区:它不是你打的那句话、它不改模型只是"叮嘱"、它是强引导不是物理锁(安全还要 harness 兜底)、不是越长越好(占记忆窗口)、不是知识仓库(海量资料走 RAG)。
- 和 Khy-OS 的关系:Khy-OS 里那些"章程/红线/守则",一部分正是每轮塞给模型的系统提示词——学会它,你就握住了"给 AI 立规矩"的方向盘。
🎉 恭喜,你摸到了"调教 AI"的第一根方向盘! 从此你再用任何 AI 助手,都会多想一层:它此刻的"性格"和"底线",是幕后那份系统提示词给的——而会写、会读这份守则,正是内行与外行的分水岭。
👈 回 概念入门总览 看看还有哪些能温故知新。
👈 上一篇 ⑰ 什么是 YOLO——回顾一下 AI 是怎么"一眼"看清一张图的。
👉 下一篇 ⑲ 什么是 ReAct(智能体推理模式)——定好了规矩,AI 到底是"怎么想、怎么做"的?看看它脑子里那套"边想边做"的套路。